package com.molichuxing.services.business.service;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.service.RootService;
import com.molichuxing.services.business.dto.request.create.EnterpriseScheduleCreateBizDto;
import com.molichuxing.services.business.dto.response.EnterpriseScheduleBizDto;

import java.util.List;
import java.util.Map;

/**
 * 企业订单排期服务
 *
 * @author zhaopenghui
 * @date 2020年6月3日
 */
public interface EnterpriseScheduleBizService extends RootService {


    /**
     * 分页获取订单排期
     *
     * @param params   orderCode：订单类型
     *                 enterpriseId:企业id
     * @param pageNum  页数
     * @param pageSize 每页条数
     * @return Paged
     * @throws Exception
     */
    public Paged<EnterpriseScheduleBizDto> getSchedulePage(Map<String, Object> params, int pageNum, int pageSize)
            throws Exception;

    /**
     * 通过排期id获取信息
     *
     * @param scheduleIds 排期ids
     * @return Map
     */
    public Map<Integer, EnterpriseScheduleBizDto> getScheduleByScheduleIds(List<Integer> scheduleIds);

    /**
     * 首付新增排期信息
     *
     * @param createBizDto 新增信息
     * @return boolean
     */
    boolean createPay(EnterpriseScheduleCreateBizDto createBizDto);

    /**
     * 终止订单车辆排期
     *
     * @param orderCode 订单号
     * @param carId     车辆id
     * @return
     */
    boolean modifyCarTermination(Long orderCode, Integer carId);

    /**
     * 获取订单排期信息
     *
     * @param orderCode 订单号
     * @return List
     */
    List<EnterpriseScheduleBizDto> getSchedule(Long orderCode);
}
